package com.ceprei.gui.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ceprei.domain.common.BaseEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zhou minghao
 * @date 2024/11/29
 * @description
 */
public interface BasicMapper <T extends BaseEntity> extends BaseMapper<T> {
    /**
     * 忽略删除状态的修改
     *
     * @param t 条件对象
     * @return 是否修改成功
     */
    Integer updateIgnoreDelFlag(T t);

    /**
     * 批量插入 mysql优化
     *
     * @param t
     * @return
     */
    Integer insertBatchByMysql(List<T> t);

    /**
     * Vo分页查询
     *
     * @param page
     * @param vo
     * @param <Vo>
     * @return
     */
    <Vo extends T> Page<Vo> queryPageVo(@Param("page") Page<Vo> page, @Param("vo") Vo vo);

    /**
     * Vo的列表查询
     *
     * @param <Vo>
     * @param vo
     * @return
     */
    <Vo extends T> List<Vo> listVo(Vo vo);
}
